package servlet;

import Dao.JdbcTools;
import Dao.UserMapper;
import com.sun.xml.internal.ws.addressing.WsaServerTube;
import model.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/updateok")
public class Updaeok extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //动态生成表单
        //1.设置
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //2.收参
        String id =req.getParameter("id");
        String name =req.getParameter("name");
        String sex =req.getParameter("sex");
        String age =req.getParameter("age");
        String major =req.getParameter("major");

        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//从配置文件中获取一个工厂对象
        SqlSessionFactory fac = new SqlSessionFactoryBuilder().build(in);
//通过工厂获取sqlsession对象
        SqlSession sqlSession = fac.openSession();
//sqlsession对象执行映射mapper文件中的sql语句
        UserMapper mapper=sqlSession.getMapper(UserMapper.class);
        Student student2 = new Student();
        student2.setName(name);
        student2.setSex(sex);
        student2.setAge(Integer.valueOf(age));
        student2.setMajor(major);
        student2.setId(Integer.valueOf(id));
        int update = mapper.update(student2);
        System.out.println("update = " + update);

        if (update>0) {
            System.out.println(id);
            //删除成功之后，重新获取数据，动态生成前端页面
            //获取数据库中展示数据
            List<Student> stulist = mapper.getUserById();
            //数据展示 servlet
            req.setAttribute("stulist", stulist);
            req.getRequestDispatcher("showlist").forward(req, resp);
        }


    }
}
